package de.fhluebeck.oop.gps.gui;

import javax.swing.text.AttributeSet;
import javax.swing.text.BadLocationException;
import javax.swing.text.PlainDocument;

/**
 * 
 * Klasse mit der eine Limitierung innerhalb von Eingabemasken erzeugt werden kann
 * 
 * @author Ogün Bilge, Leif Hitzschke
 * @version 1.00, 13.11.2009
 *
 */
public class JTextFieldLimit extends PlainDocument {

	private int limit;

	// optional uppercase conversion
	private boolean toUppercase = false;

	public JTextFieldLimit()
	{
		super();
	}

	public JTextFieldLimit(int limit) {
		super();
		this.limit = limit;
	}

	public JTextFieldLimit(int limit, boolean upper) {	
		super();
		this.limit = limit;
		toUppercase = upper;
	}

	public void insertString(int offset, String str, AttributeSet attr) throws BadLocationException {
		if (str == null) {
			return;
		} 
		
		if ((getLength() + str.length()) <= limit){	
			if (toUppercase) {
				str = str.toUpperCase();
			}
			super.insertString(offset, str, attr);
		}
		
		
	}
}